////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  parametertuningtypes.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef PARAMETERTUNINGTYPES_H
#define PARAMETERTUNINGTYPES_H

#include "parametertypes.h"


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeType
{
    Default  = 0,
    Sensor   = 1,
    Usecase  = 2,
    Feature1 = 3,
    Feature2 = 4,
    Scene    = 5,
    Effect   = 6
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeUsecaseSubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeUsecaseSubModeType
{
    Preview  = 0,
    Snapshot = 1,
    Video    = 2,
    ZSL      = 3,
    Liveshot = 4
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeFeature1SubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeFeature1SubModeType
{
    None   = 0,
    ISPHDR = 1,
    ADRC   = 2
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeFeature2SubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeFeature2SubModeType
{
    None           = 0,
    OISCapture     = 1,
    HLG            = 2,
    HDR10          = 3,
    MFNRBlend      = 4,
    MFNRPostFilter = 5,
    MFSRBlend      = 6,
    MFSRPostFilter = 7
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeSceneSubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeSceneSubModeType
{
    None          = 0,
    Landscape     = 1,
    Snow          = 2,
    Beach         = 3,
    Sunset        = 4,
    Night         = 5,
    Portrait      = 6,
    BackLight     = 7,
    Sports        = 8,
    AntiShake     = 9,
    Flowers       = 10,
    CandleLight   = 11,
    Fireworks     = 12,
    Party         = 13,
    NightPortrait = 14,
    Theater       = 15,
    Action        = 16,
    AR            = 17,
    FacePriority  = 18,
    Barcode       = 19,
    BestShot      = 20
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeEffectSubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class ModeEffectSubModeType
{
    None       = 0,
    Mono       = 1,
    Sepia      = 2,
    Negative   = 3,
    Solarize   = 4,
    Posterize  = 5,
    Aqua       = 6,
    Emboss     = 7,
    Sketch     = 8,
    Neon       = 9,
    Blackboard = 10,
    Whiteboard = 11
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ModeSubModeType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
union ModeSubModeType
{
    UINT16                  value;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// usecase
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeUsecaseSubModeType usecase;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// feature1
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeFeature1SubModeType feature1;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// feature2
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeFeature2SubModeType feature2;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// scene
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeSceneSubModeType scene;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// effect
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeEffectSubModeType effect;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// TuningMode
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct TuningMode
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mode
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeType        mode;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// subMode
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ModeSubModeType subMode;
};

#endif // PARAMETERTUNINGTYPES_H

